ifdef CONFIG_KCOV

ifeq ($(call cc-option, -fsanitize-coverage=trace-pc -Werror),)
    ifneq ($(CONFIG_COMPILE_TEST),y)
        $(error Cannot use CONFIG_KCOV: \
          -fsanitize-coverage=trace-pc is not supported by compiler)
    endif
endif

ifdef CONFIG_KCOV_ENABLE_COMPARISONS
    ifeq ($(call cc-option, -fsanitize-coverage=trace-cmp -Werror),)
        ifneq ($(CONFIG_COMPILE_TEST),y)
            $(error Cannot use CONFIG_KCOV_ENABLE_COMPARISONS: \
              -fsanitize-coverage=trace-cmp is not supported by compiler)
        endif
    endif
endif

kcov-flags-$(CONFIG_CC_HAS_SANCOV_TRACE_PC)	+= -fsanitize-coverage=trace-pc
kcov-flags-$(CONFIG_KCOV_ENABLE_COMPARISONS)	+= -fsanitize-coverage=trace-cmp
kcov-flags-$(CONFIG_GCC_PLUGIN_SANCOV)		+= -fplugin=$(objtree)/scripts/gcc-plugins/sancov_plugin.so

export CFLAGS_KCOV := $(kcov-flags-y)

endif
